package Object724;
import java.util.Arrays;
import java.util.Date;

import static java.lang.Math.*;//导入包
 class Student1 {
    public String name;
    private int age;
    private String stuNum;
    public String qq;
    public static String ClassName;
    public String getName() {//用于外界访问private修饰限定符修饰的变量
        return name;
    }
    public void setName(String name) { //用于接收外界给private修饰成员变量的赋值
        this.name = name;//用this是为了防止重名带来的影响，明确告诉系统操作当前成员变量赋值
    }
    public int getAge(){
        return age;//用于单个访问被私有化的变量
    }
    public void setAge(int age) {
        this.age = age;
    }
    public  String getStuNum(){
        return stuNum;
    }
    public void setStuNum(String stuNum) {
        this.stuNum = stuNum;
    }
//构造方法
    public Student1(){
        System.out.println("不带参数的构造方法......");
    }
    public Student1(String name, int age, String stuNum) {
        //可通过构造方法给私有变量赋值，在实例化对象时传参调用赋值
        this.name = name;
        this.age = age;
        this.stuNum = stuNum;
    }
    //成员方法
    public void eat(){
        System.out.println(this.name+"正在吃饭！！！");
    }
    public void listening(){
        System.out.println(this.name+"正在上课------");
    }
    private void sy(){
        System.out.println("这个方法是给本类其它访问服务使用的，不对外公开！！！");
    }
    public void show(){
        System.out.println(" 姓名："+this.name+" 年龄: "+this.age+" 学号: "+this.stuNum+" 班级: "+this.ClassName);
        sy();
    }
}
public class Student{
     public static void main(String[]args){
         /*Student s1=null;
         System.out.println(s1.show());空指针异常*/
         Student1 st1=new Student1();
         st1.ClassName="2班";
         System.out.println("第一个学生的班级是："+st1.ClassName);
         Student1 st2=new Student1();
         Student1.ClassName="3班";
         System.out.println("第二个学生的班级是："+st2.ClassName);
         Student1 st3=new Student1("lisa",18,"4231345");//非字符串类型不能用”“引起来，不属于此对象变量不能赋值
         Student1.ClassName="4班";//以上是第一种给私有变量/变量传参的方法
         st3.show();
         Student1 st4=new Student1();
/*       st4.name="ccc";
       System.out.println(str4.name);//被私有化了无法直接访问*/
         //给私有变量赋值
         Student1 st5=new Student1();
         st5.setName("xixi");//第二种给私有化变量传参方法
         st5.setAge(19);
         st5.setStuNum("4567322");
         Student1.ClassName="5班";
         st5.show();//第一种打印方式
         System.out.println("学生姓名："+st5.getName());//第二种打印方式
         System.out.println("学生年纪："+st5.getAge());
         System.out.println("学生学号："+st5.getStuNum());
         System.out.println("学生班级："+Student1.ClassName);
         Student1 st6=new Student1();
         st6.qq="2345666220";//给普通变量赋值
         System.out.println("第六个学生的QQ号"+st6.qq);
         st6.eat();
         st6.listening();
         double x=10;
         double y=2;
        // double r=Math.sqrt(Math.pow(x,2)+Math.pow(y,2));
         //静态导入更方便
         double r=sqrt(pow(x,2)+pow(y,2));
         System.out.println("式子结果是"+r);
         int[]array={1,2,3,4};
         System.out.println(Arrays.toString(array));
        java.util. Date date=new Date() ;
         System.out.println("系统时间为"+date);//打印系统时间
         java.sql.Date date1=new java.sql.Date(1000000000);//数据库专用日期从1970-1-1开始，输入时间得到过完输入这段时间的值
         System.out.println("sql.Date的值"+date1);//为防止重名影响可以在定义时写入导入的包名、类名以此来区分
     }
}